Ja, und ein durchaus modernes Dateisystem, gibt es auch in der Windows-Welt.
Obwohl es jetzt fast jetzt schon 20 Jahre alt ist.
Aber letztendlich doch, vom Grundprinzip her, hat 20 Jahre jünger,
wie die alten Ionicstrukturen oder auchkl SFAT-Datesysteme.
Ich will es deswegen hier ein bisschen im Detail beschreiben, weil es doch eine ganze Reihe von sehr interessanten Eigenschaften hat,
die vor allem einen sehr flexiblen Umgang mit verschiedenen Anforderungen auf Datasystemen ermöglichen.
Im Vergleich zu vielen anderen Konzepten in der damaligen Windows-Zeit, also der damaligen MS-DOS-Zeit,
ist es auch so, dass dieses Windows-Dateisystem von jemandem konzipiert wurde, der wirklich auch wusste, wie man Betriebssysteme baut.
Also Dave Cutler war das damals. Der kam von der Firma Digital Equipment und hatte dort für die Wechsrechner das VMS bereits gebaut gehabt.
Hatte also auch Erfahrung im Bau von komplexen Betriebssystemen.
Von den Grundstrukturen ist es erstmal ein bisschen ähnlich wie so ein Unix-Dateisystem.
Wir haben Dateien. Wir haben natürlich auch Verzeichnisse in den Dateien. Hat einen beliebigen Inhalt.
Für das Betriebssystem ist der Inhalt auch transparent.
Wir haben Rechte, die verknüpft sind mit NT-Benutzern und Gruppen. Auch das ist völlig analog zu den Unix-Systemen.
Dateien können automatisch komprimiert oder verschlüsselt gespeichert werden. Das es neu.
Große Dateien können bis zu 2,64 bytes lang sein. Das sollte im Normalfall einfach
reichen. Wir haben Hardlinks, das heißt auch mehrere
Einträge derselben Datei in verschiedenen Katalogen sind möglich. Das
hatte Windows vorher nicht. Da gab es zwar Symbolic Links, also Verknüpfungen,
aber eben nicht diese Hardlinks. Das heißt, es ist also auch mit einem Schritt
hingewiesen, um zumindest was den Systemunterbau angeht, eine gewisse
Kompatibilität zu Unix-Systemen hinzubekommen. In der Folge wurden dann
ja auch Programmierschnittstellen im Windows realisiert, mit denen man auch
eine komplette Unix-Emulationen realisieren konnte.
Der Datei-Inhalt ist ein bisschen anders. Es ist nicht einfach nur ein Byte-Strom,
sondern ist es eine Sammlung von Streams. Ein Stream ist eine einfache und
strukturierte Folge von Bytes, aber man kann mehrere solche Streams haben. Der
normale Datei-Inhalt ist ein unbenannter Stream, der Default-Stream. Der ist auch
genauso wie bei den Unix-Dateisystemen dynamisch erweiterbar.
Und die Syntax generell ist eben Dateiname-Doppelpunkt-Stream-Name.
Dadurch, dass man in allen normalen Dateien eigentlich nur einen Stream hat, fällt
einem das nicht weiter auf, aber man kann auch auf Anwendungsebene durchaus seine
Daten in einer Datei eben so strukturieren, dass sie auf verschiedene
Streams aufgeteilt werden. Dadurch, dass viele von den normalen
Windows-Utilities diese Streams nicht weiter beachten und man die auch nicht
weiter sieht, muss man allerdings auch sagen, wenn solche Streams zum Beispiel
auch ganz gerne verwendet, um Viren und solche Sachen zu verstecken. Und das
fällt dann dem normalen Benutzer auch gar nicht auf, dass da in der Datei
möglicherweise noch ein zusätzliches Stream ist, der vielleicht auch irgendwelchen
Müll enthält.
Die Basis-Einheit von solchen Dateien sind sogenannte Cluster.
Cluster ist zwischen 512 und 4 KB groß, das wird dann formatieren festgelegt und
ein Cluster wird dann auf eine Menge von hintereinander folgenden Blöcken auf der
Platte abgelegt. Und so ein Cluster hat als Adresse das sogenannte Logical Cluster-Nummer
und die sind einfach durchnummeriert. Also diese Cluster sind die Cluster 01234,
das sind die logischen Cluster-Nummern und darüber kann ich dann eben auch den
Inhalt einer Datei ganz gut adressieren, weil ich einfach aufgrund der Position
eben den logischen Cluster ausrechnen kann und weiß dann,
wo die Daten liegen. Ich brauche natürlich dann die Abbildungen auf den
tatsächlichen Plattenblock, aber das schauen uns dann später an.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:16:21 Min
Aufnahmedatum
2021-01-26
Hochgeladen am
2021-01-27 13:18:43
Sprache
de-DE